# -*- coding:utf-8 -*-
日志等级 = 20
# 日志等级 = 10

# 源文件 和 翻译列表 中
#   不能含有空行
#   不能含有空列
#   列名不能相同
源文件 = './sources_data/源数据.xlsx'
# 翻译列表用于转换源文件中的值
翻译列表 = [
    './sources_data/基础数据.xlsx',
]

# 定义映射规则中用到的字段的值
翻译项 = {
    '核算代码': {
        'where': '{基础数据.客户名称}=={源数据.客户名称}',  #和select同一个文件的需要放在左侧
        'select': '{基础数据.客户名称代码}',
    },
    '科目代码': {
        "where": '{基础数据.存货代码}=={源数据.存货代码}',
        "select": '{基础数据.科目代码}',
    },
    '科目名称': {
        "where": '{基础数据.存货代码}=={源数据.存货代码}',
        "select": '{基础数据.科目名称}',
    },
    '部门代码': {
        "where": '{基础数据.项目核算名称}=={源数据.部门项目核算名称}',
        "select": '{基础数据.K3项目核算编码}',
    },
    '客户类别代码': {
        "where": '{基础数据.客户类别名称}=={源数据.客户类别}',
        'select': '{基础数据.客户类别代码}',
    },
    '汇总类': {
        'where': '{基础数据.存货代码}=={源数据.存货代码}',
        'select': '{基础数据.汇总类}',
    },
    '统计科目代码': {
        'where': '{基础数据.科目汇总名称}=={汇总类}',
        'select': '{基础数据.科目汇总代码}',
    },
}

# 分组列中不能含有空行;
# 根据分组列将数据分为多个输出文件；
# 输出文件名=源数据分组列的值；
分组列 = '{源数据.客户类别}'

# 每扫描一条源数据，都会根据映射规则进行计算并写入
# title: 列名
# type 数据类型, 支持 date string number
# exep: 表达式
#    year: 今年
#    month: 当前月份
#    day: 当前日份
#    monthLastDay: 当前最后一天(日份)
映射规则 = [
    # 第一种情况
    [
        {
            'title': '凭证日期',
            'type': 'date',
            'expr': '{year}/{month}/{monthLastDay}',
        },
        {
            'title': '会计年度',
            'type': 'number',
            'expr': '{year}',
            'format': '0',
        },
        {
            'title': '会计期间',
            'type': 'number',
            'expr': 4,
        },
        {
            'title': '凭证字',
            'type': 'string',
            'expr': '记',
        },
        {
            'title': '凭证号',
            'type': 'number',
            'expr': 300
        },
        {
            'title': '科目代码',
            'type': 'string',
            'expr': '1122.01'
        },
        {
            'title': '科目名称',
            'type': 'string',
            'expr': '销售应收'
        },
        {
            'title': '币别代码',
            'type': 'string',
            'expr': 'RMB'
        },
        {
            'title': '币别名称',
            'type': 'string',
            'expr': '人民币',
        },
        {
            'title': '原币金额',
            'type': 'number',
            'expr': '{源数据.开票金额}',
            'format': '0.00',
        },
        {
            'title': '借方',
            'type': 'number',
            'expr': '{源数据.开票金额}',
            'format': '0.00',
        },
        {
            'title': '贷方',
            'type': 'number',
            'expr': 0,
            'format': '0.00',
        },
        {
            'title': '制单',
            'type': 'string',
            'expr': '卢翠洁',
        },
        {
            'title': '审核',
            'type': 'string',
            'expr': 'NONE',
        },
        {
            'title': '核准',
            'type': 'string',
            'expr': 'NONE',
        },
        {
            'title': '出纳',
            'type': 'string',
            'expr': 'NONE',
        },
        {
            'title': '经办',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '结算方式',
            'type': 'string',
            'expr': '*',
        },
        {
            'title': '结算号',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '凭证摘要',
            'type': 'string',
            'expr': '销售{源数据.客户名称}{源数据.部门项目核算名称}{源数据.存货代码}{源数据.发票号码}',
        },
        {
            'title': '数量',
            'type': 'number',
            'expr': 0,
        },
        {
            'title': '数量单位',
            'type': 'string',
            'expr': '*',
        },
        {
            'title': '单价',
            'type': 'number',
            'expr': 0,
            'format': '0.00',
        },
        {
            'title': '参考信息',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '业务日期',
            'type': 'date',
            'expr': '{year}/{month}/{monthLastDay}',
        },
        {
            'title': '往来业务编号',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '附件数',
            'type': 'number',
            'expr': 0,
        },
        {
            'title': '序号',
            'type': 'number',
            'expr': 557,
        },
        {
            'title': '系统模块',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '业务描述',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '汇率类型',
            'type': 'string',
            'expr': '公司汇率',
        },
        {
            'title': '汇率',
            'type': 'number',
            'expr': 1,
        },
        {
            'title': '分录序号',
            'type': 'number',
            'expr': '{index}',
        },
        {
            'title': '核算项目',
            'type': 'string',
            'expr': '客户---{核算代码}---{源数据.客户名称}',
        },
        {
            'title': '过账',
            'type': 'number',
            'expr': 0,
        },
        {
            'title': '机制凭证',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '现金流量',
            'type': 'string',
            'expr': '',
        },
    ],
    # 第二种情况
    [
        {
            'title': '凭证日期',
            'type': 'date',
            'expr': '{year}/{month}/{monthLastDay}',
        },
        {
            'title': '会计年度',
            'type': 'number',
            'expr': '{year}',
            'format': '0'
        },
        {
            'title': '会计期间',
            'type': 'number',
            'expr': 4,
        },
        {
            'title': '凭证字',
            'type': 'string',
            'expr': '记',
        },
        {
            'title': '凭证号',
            'type': 'number',
            'expr': 300
        },
        {
            'title': '科目代码',
            'type': 'string',
            'expr': '{科目代码}'
        },
        {
            'title': '科目名称',
            'type': 'string',
            'expr': '{科目名称}'
        },
        {
            'title': '币别代码',
            'type': 'string',
            'expr': 'RMB'
        },
        {
            'title': '币别名称',
            'type': 'string',
            'expr': '人民币',
        },
        {
            'title': '原币金额',
            'type': 'number',
            'expr': '{源数据.不含税金额}',
            'format': '0.00',
        },
        {
            'title': '借方',
            'type': 'number',
            'expr': 0,
            'format': '0.00',
        },
        {
            'title': '贷方',
            'type': 'number',
            'expr': '{源数据.不含税金额}',
            'format': '0.00',
        },
        {
            'title': '制单',
            'type': 'string',
            'expr': '卢翠洁',
        },
        {
            'title': '审核',
            'type': 'string',
            'expr': 'NONE',
        },
        {
            'title': '核准',
            'type': 'string',
            'expr': 'NONE',
        },
        {
            'title': '出纳',
            'type': 'string',
            'expr': 'NONE',
        },
        {
            'title': '经办',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '结算方式',
            'type': 'string',
            'expr': '*',
        },
        {
            'title': '结算号',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '凭证摘要',
            'type': 'string',
            'expr': '销售{源数据.客户名称}{源数据.部门项目核算名称}{源数据.存货代码}{源数据.发票号码}',
        },
        {
            'title': '数量',
            'type': 'number',
            'expr': 0,
        },
        {
            'title': '数量单位',
            'type': 'string',
            'expr': '*',
        },
        {
            'title': '单价',
            'type': 'number',
            'expr': 0,
            'format': '0.00',
        },
        {
            'title': '参考信息',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '业务日期',
            'type': 'date',
            'expr': '{year}/{month}/{monthLastDay}',
        },
        {
            'title': '往来业务编号',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '附件数',
            'type': 'number',
            'expr': 0,
        },
        {
            'title': '序号',
            'type': 'number',
            'expr': 557,
        },
        {
            'title': '系统模块',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '业务描述',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '汇率类型',
            'type': 'string',
            'expr': '公司汇率',
        },
        {
            'title': '汇率',
            'type': 'number',
            'expr': 1,
        },
        {
            'title': '分录序号',
            'type': 'number',
            'expr': '{index}',
        },
        {
            'title': '核算项目',
            'type': 'string',
            'expr':
            '部门---{部门代码}---{源数据.部门项目核算名称}||客户类别---{客户类别代码}---{源数据.客户类别}',
        },
        {
            'title': '过账',
            'type': 'number',
            'expr': 0,
        },
        {
            'title': '机制凭证',
            'type': 'string',
            'expr': '',
        },
        {
            'title': '现金流量',
            'type': 'string',
            'expr': '',
        },
    ],
]

统计分组 = '{统计科目代码}'

# 扫描所有源数据，才会进行一次写入
# 'sum': 'sum' 求和项目; 仅支持number 求和
统计规则 = [
    {
        'title': '凭证日期',
        'type': 'date',
        'expr': '{year}/{month}/{monthLastDay}'
    },
    {
        'title': '会计年度',
        'type': 'number',
        'expr': '{year}',
        'format': '0'
    },
    {
        'title': '会计期间',
        'type': 'number',
        'expr': 4,
    },
    {
        'title': '凭证字',
        'type': 'string',
        'expr': '记',
    },
    {
        'title': '凭证号',
        'type': 'number',
        'expr': 300
    },
    {
        'title': '科目代码',
        'type': 'string',
        'expr': '{统计科目代码}'
    },
    {
        'title': '科目名称',
        'type': 'string',
        'expr': '{汇总类}'
    },
    {
        'title': '币别代码',
        'type': 'string',
        'expr': 'RMB'
    },
    {
        'title': '币别名称',
        'type': 'string',
        'expr': '人民币',
    },
    {
        'title': '原币金额',
        'type': 'number',
        'sum_fun': 'sum',  # 求和项目
        'expr': '{源数据.税额}',
        'default': '0',
        'format': '0.00',
    },
    {
        'title': '借方',
        'type': 'number',
        'expr': 0,
        'format': '0.00',
    },
    {
        'title': '贷方',
        'type': 'number',
        'sum_fun': 'sum',
        'expr': '{源数据.税额}',
        'format': '0.00',
    },
    {
        'title': '制单',
        'type': 'string',
        'expr': '卢翠洁',
    },
    {
        'title': '审核',
        'type': 'string',
        'expr': 'NONE',
    },
    {
        'title': '核准',
        'type': 'string',
        'expr': 'NONE',
    },
    {
        'title': '出纳',
        'type': 'string',
        'expr': 'NONE',
    },
    {
        'title': '经办',
        'type': 'string',
        'expr': '',
    },
    {
        'title': '结算方式',
        'type': 'string',
        'expr': '*',
    },
    {
        'title': '结算号',
        'type': 'string',
        'expr': '',
    },
    {
        'title': '凭证摘要',
        'type': 'string',
        'expr': '{month}月销售项目',
    },
    {
        'title': '数量',
        'type': 'number',
        'expr': 0,
    },
    {
        'title': '数量单位',
        'type': 'string',
        'expr': '*',
    },
    {
        'title': '单价',
        'type': 'number',
        'expr': 0,
        'format': '0.00',
    },
    {
        'title': '参考信息',
        'type': 'string',
        'expr': '',
    },
    {
        'title': '业务日期',
        'type': 'date',
        'expr': '{year}/{month}/{monthLastDay}',
    },
    {
        'title': '往来业务编号',
        'type': 'string',
        'expr': '',
    },
    {
        'title': '附件数',
        'type': 'number',
        'expr': 0,
    },
    {
        'title': '序号',
        'type': 'number',
        'expr': 557,
    },
    {
        'title': '系统模块',
        'type': 'string',
        'expr': '',
    },
    {
        'title': '业务描述',
        'type': 'string',
        'expr': '',
    },
    {
        'title': '汇率类型',
        'type': 'string',
        'expr': '公司汇率',
    },
    {
        'title': '汇率',
        'type': 'number',
        'expr': 1,
    },
    {
        'title': '分录序号',
        'type': 'number',
        'expr': '{index}',
    },
    {
        'title': '核算项目',
        'type': 'string',
        'expr': '',
    },
    {
        'title': '过账',
        'type': 'number',
        'expr': 0,
    },
    {
        'title': '机制凭证',
        'type': 'string',
        'expr': '',
    },
    {
        'title': '现金流量',
        'type': 'string',
        'expr': '',
    },
]
